কাস্টম ফরম্যাটিং এবং printf(), scanf() এর অ্যাডভান্সড ব্যবহার

Computer Programming - সি স্ট্যান্ডার্ড লাইব্রেরি রেফারেন্স (C Standard Library Reference) Input/Output Buffering এবং Formatting (ইনপুট/আউটপুট বাফারিং এবং ফরম্যাটিং) |
200
200

কাস্টম ফরম্যাটিং এবং printf(), scanf() এর অ্যাডভান্সড ব্যবহার

সি প্রোগ্রামিং ভাষায় printf() এবং scanf() ফাংশন দুটি স্ট্যান্ডার্ড ইনপুট এবং আউটপুট ব্যবস্থাপনার জন্য ব্যবহৃত হয়। এই ফাংশনগুলোর সাহায্যে আমরা সহজেই ইনপুট নিতে এবং আউটপুট প্রদর্শন করতে পারি। তবে, যখন আপনাকে আরও কাস্টম ফরম্যাটিং অথবা অ্যাডভান্সড ফিচার প্রয়োজন হয়, তখন printf() এবং scanf() এ কিছু বিশেষ ফরম্যাট স্পেসিফায়ার এবং কাস্টম অপশন ব্যবহার করা যেতে পারে।

এখানে printf() এবং scanf() ফাংশনের কাস্টম ফরম্যাটিং এবং অ্যাডভান্সড ব্যবহার নিয়ে বিস্তারিত আলোচনা করা হলো।


১. printf() এর কাস্টম ফরম্যাটিং

printf() ফাংশনটি বিভিন্ন ধরনের ডেটা আউটপুট করতে ব্যবহৃত হয়, এবং এটি ফরম্যাট স্পেসিফায়ার এর মাধ্যমে আউটপুটকে কাস্টমাইজ করতে পারে। ফরম্যাট স্পেসিফায়ারের সাহায্যে আমরা ডেটা প্রদর্শনের ধরন, স্থানে, স্থানান্তর এবং সঠিকতা নির্ধারণ করতে পারি।

১.১ ফরম্যাট স্পেসিফায়ার

স্পেসিফায়ারবর্ণনা
%dইন্টিজার আউটপুট (decimal)
%fফ্লোট আউটপুট
%sস্ট্রিং আউটপুট
%cএকক ক্যারেক্টার আউটপুট
%xহেক্সাডেসিমাল আউটপুট (lowercase)
%Xহেক্সাডেসিমাল আউটপুট (uppercase)
%oঅক্টাল আউটপুট
%eএক্সপোনেনশিয়াল ফরম্যাটে ফ্লোট আউটপুট
%gস্বয়ংক্রিয়ভাবে %f বা %e বেছে নেয়

১.২ বিস্তৃত ফরম্যাটিং অপশন

  1. নির্দিষ্ট দৈর্ঘ্য (Width) সেট করা:

    • আপনি printf() ফাংশনে আউটপুটের জন্য নির্দিষ্ট ফিল্ড উইডথ (দৈর্ঘ্য) নির্ধারণ করতে পারেন। এটি আউটপুটটিকে নির্দিষ্ট জায়গায় সেন্টার করতে বা মাপতে সহায়ক।

    উদাহরণ:

    printf("|%10d|\n", 123);  // আউটপুট: "|       123|", যেখানে 10টি স্পেস বরাদ্দ করা হয়েছে।
  2. ফ্লোট পয়েন্ট সঠিকতা (Precision):

    • আপনি ফ্লোট বা ডাবল মানের দশমিক স্থান সংখ্যা নির্ধারণ করতে পারেন।

    উদাহরণ:

    printf("%.2f\n", 3.14159);  // আউটপুট: "3.14", দশমিকের পরে দুইটি সংখ্যা
  3. আউটপুটে পূর্ণাঙ্গ সংখ্যা যোগ করা (Pad with Zero):

    • আপনি সংখ্যার সামনে শূন্য (zero) যোগ করতে পারেন।

    উদাহরণ:

    printf("|%05d|\n", 42);  // আউটপুট: "|00042|", সংখ্যা শূন্য দিয়ে পূর্ণ হবে
  4. টেক্সট সেন্টারিং বা লেফট/রাইট এলাইনমেন্ট:

    • আপনি লেফট অথবা রাইট সেন্টারিং ফরম্যাট করতে পারেন।

    উদাহরণ:

    printf("|%-10s|\n", "hello");  // আউটপুট: "|hello     |", বাম দিকে অ্যাডজাস্ট

১.৩ কাস্টম ফরম্যাট স্পেসিফায়ার

printf() ফাংশনটি কাস্টম ফরম্যাটের জন্য বিশেষ স্পেসিফায়ার ব্যবহার করতে দেয়:

  • %*s: স্ট্রিং সাইজ কাস্টমাইজ করা।
  • %.*f: ফ্লোট সঠিকতা কাস্টমাইজ করা।

উদাহরণ:

#include <stdio.h>

int main() {
    printf("|%*s|\n", 10, "test");  // আউটপুট: "|      test|", যেখানে স্ট্রিং সাইজ কাস্টমাইজ করা হয়েছে
    printf("|%.*f|\n", 2, 3.14159);  // আউটপুট: "|3.14|", যেখানে ফ্লোট সঠিকতা নির্ধারণ করা হয়েছে
    return 0;
}

২. scanf() এর কাস্টম ফরম্যাটিং

scanf() ফাংশনটি ইনপুট গ্রহণ করার সময় নির্দিষ্ট ফরম্যাটে ইনপুট প্রয়োজন হলে আমরা ফরম্যাট স্পেসিফায়ার ব্যবহার করতে পারি। এর মাধ্যমে ইনপুটের সঠিকতা এবং টাইপ নির্ধারণ করা যায়।

২.১ ফরম্যাট স্পেসিফায়ার

স্পেসিফায়ারবর্ণনা
%dইন্টিজার ইনপুট (decimal)
%fফ্লোট ইনপুট
%sস্ট্রিং ইনপুট
%cএকক ক্যারেক্টার ইনপুট
%xহেক্সাডেসিমাল ইনপুট
%oঅক্টাল ইনপুট

২.২ ফরম্যাটিং এবং ইনপুট চেকিং

  1. ইনপুটের সীমাবদ্ধতা (Field width):

    • আপনি scanf() এর মাধ্যমে ইনপুটের জন্য ফিল্ড উইডথ নির্ধারণ করতে পারেন।

    উদাহরণ:

    char str[10];
    scanf("%9s", str);  // একবারে 9টি ক্যারেক্টার পড়বে
  2. ডেটা টাইপের পরীক্ষা:

    • scanf() ফাংশন ইনপুট টাইপের উপর ভিত্তি করে সঠিক ডেটা টাইপ চেক করবে এবং এটি সফল হলে একটি return value রিটার্ন করবে (যেমন 1, 2, বা 0)।

    উদাহরণ:

    int num;
    if (scanf("%d", &num) != 1) {
        printf("Invalid input!\n");
    }
  3. একাধিক ইনপুট গ্রহণ করা:

    • আপনি scanf() ব্যবহার করে একাধিক ইনপুটও একসাথে গ্রহণ করতে পারেন।

    উদাহরণ:

    int a;
    float b;
    char c;
    scanf("%d %f %c", &a, &b, &c);

২.৩ কাস্টম ইনপুট ফরম্যাট

যদি আপনি চান যে scanf() শুধুমাত্র কিছু নির্দিষ্ট চরিত্র গ্রহণ করুক, তাহলে আপনি কাস্টম ফরম্যাট স্পেসিফায়ার ব্যবহার করতে পারেন।

উদাহরণ:

char ch;
scanf("%1s", &ch);  // একক অক্ষর ইনপুট

সারসংক্ষেপ

ফাংশনবর্ণনাসিঙ্কট্যাক্স
printf()আউটপুট ফরম্যাটিং এবং ডেটা প্রদর্শন।printf(format, ...)
scanf()ইনপুট গ্রহণ এবং ফরম্যাটিং।scanf(format, ...)
  • printf() এবং scanf() ফাংশনগুলির মাধ্যমে আপনি কাস্টম ফরম্যাটিং করতে পারেন, যেমন সঠিকতা, দৈর্ঘ্য, ফিল্ড উইডথ ইত্যাদি।
  • printf() বিভিন্ন ধরনের ফরম্যাট স্পেসিফায়ার যেমন %d, %f, %s ইত্যাদি ব্যবহার করে আউটপুট কাস্টমাইজ করতে পারে।
  • scanf() ইনপুট গ্রহণ করার সময় নির্দিষ্ট ফরম্যাট স্পেসিফায়ার এবং টাইপ চেকিং সরবরাহ করে, যা ইনপুটের সঠিকতা নিশ্চিত করতে সাহায্য করে।

এই ফাংশনগুলির মাধ্যমে, আপনি সি প্রোগ্রামে আউটপুট এবং ইনপুটকে কাস্টমাইজ করতে পারেন এবং কোড আরও কার্যকরী ও ব্যবহারযোগ্য করে তুলতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion